Privatni IP adresy
Jednim ze zakladnich dogmat Internetu jako celosvetove site na bazi protokolu TCP/IP je pozadavek, aby kazdy internetovy uzel mel pridelenu jednoznacnou (celosvetove unikatni) IP adresu. To mj. znamena, ze zadna IP adresa nemuze byt pouzita vicekrat. Presto ale z tohoto zakladniho pravidla existuji urcite vyjimky - jde napr. o tzv. privatni IP adresy.
Duvod, kvuli kteremu musi byt v kazde TCP/IP siti kazdy uzel vybaven jednoznacnou (unikatni, jinde nepouzitou) IP adresou, je vcelku jednoduchy a zrejmy - pokud by tomu tak nebylo a alespon dva uzly mely stejnou adresu, jak by bylo mozne je rozlisit? Jak by fungovaly smerovaci mechanismy, ktere se staraji o potrebnou volbu smeru k prislusnemu uzlu - ale ke kteremu, kdyz by jich bylo vice? Pozadavek na unikatnost IP adres se samozrejme tyka i te nejvetsi TCP/IP site na svete, a to globalniho Internetu. Take zde je pro korektni fungovani smerovacich mechanismu nutne, aby kazdy uzel mel unikatni (a tudiz vlastne celosvetove unikatni) IP adresu. Kvuli tomuto pozadavku existuje v Internetu pomerne propracovany system pridelovani IP adres, ktery potrebnou celosvetovou unikatnost dokaze zajistit - dnes konkretne jde o cely hierarchicky system tzv. IP registries (jakychsi "pridelovatelu" IP adres), o kterem si povime v samostatnem vydani teto encyklopedie.
Pozadavek na unikatnost adres pritom plati i v situaci, kdy se nejake dve site na bazi protokolu TCP/IP spojuji - napriklad kdyz se nejaka dosud samostatna TCP/IP sit pripojuje k Internetu. I po jejich spojeni totiz musi platit, ze kazdy uzel ma unikatni adresu, odlisnou od vsech ostatnich. Tento pozadavek v praxi vedl na velmi durazna doporuceni: aby i zrizovatele IP siti, kteri vubec neplanuji jejich pripojeni k Internetu, vzdy pouzivali pro sve site takove IP adresy, ktere nejsou a nebudou pouzity jinde v Internetu - protoze nemohou nikdy vyloucit, ze v budoucnu se preci jen nebudou k Internetu chtit pripojit. Proto i takoveto "samostatne" a dosud nepripojene site odcerpavaly z celkoveho adresoveho prostoru vsech IP adres, ktery je jednou provzdy dan jejich 32bitovou velikosti.
Vicenasobne pouzitelne IP adresy?
Vzhledem k puvodnimu zpusobu pridelovani IP adres, ktery byl ponekud "neekonomicky" a vedl ke znacnemu plytvani IP adresami (viz zde), se po urcite dobe objevilo realne nebezpeci jejich vycerpani (podrobneji viz zde). Casem se podarilo vyvinout takove reseni, ktere by problem hroziciho nedostatku IP adres vyresilo zasadnim zpusobem. Jde o novou verzi sitoveho protokolu IP (IP verze 6), ktera pracuje s podstatne vetsimi IP adresami. Soucasne s tim se ale nasly i takove mechanismy, ktere umoznily zpomalit puvodne rychly ubytek IP adres. Jednim z nich je mechanismus CIDR, popisovany v predchozim dilu teto encyklopedie.
Dalsim "docasnym" resenim, ktere neodstranuje pricinu problemu, ale pouze zpomaluje ubytek adres, je reseni umoznujici vicenasobne pouziti IP adres. Tedy takove reseni, ktere dovoluje pridelit jednu a tutez IP adresu vice ruznym uzlum, v ramci ruznych siti.
Podstata privatnich IP adres
Zakladni myslenkou prave naznaceneho reseni, ktere je oznacovano jako pouziti tzv. privatnich IP adres, je zavedeni nove kategorie sitovych uzlu. Zatimco az dosud byly vsechny uzly "verejne" (v tom smyslu, ze byly dosazitelne ze vsech ostatnich uzlu), nyni se zavedly tzv. privatni uzly, dostupne pouze omezenemu okruhu dalsich uzlu, ale nikoli obecne vsem ostatnim uzlum. Asi nejlepe je predstavit si tuto moznost na lokalni siti pripojene k Internetu - uzly teto lokalni site mohou byt nakonfigurovany jako privatni, neboli byt vybaveny tzv. privatnimi IP adresami. Tedy takovymi adresami, ktere nemusi byt ziskany prostrednictvim IP registries, neboli zpusobem, ktery zajistuje jejich unikatnost. Mohou to tedy byt takove adresy, ktere jsou jiz pouzity nekde jinde v Internetu, nebo to o nich neni znamo (tj. mohou, ale nemusi byt pouzity jinde). V zasade si lze predstavit, ze tyto privatni IP adresy si zrizovatel site muze zvolit libovolne, aniz by se ohlizel na nekoho jineho (napriklad na celosvetovy zpusob distribuce IP adres, zajistujici jejich unikatnost).
Zasadnim dovetkem, ktery je nutne dodat pro smysluplnost tohoto reseni, je pozadavek na to, aby existence privatnich uzlu (uzlu s privatnimi adresami) nebyla "prozrazovana" smerem ven, do "verejneho" Internetu. Presneji do te casti soustavy vzajemne propojenych siti, ve ktere neni mozne ocekavat, ze se zde stejne adresy nevyskytuji znovu. V nasem konkretnim priklade lokalni site pripojene k Internetu by to znamenalo, ze informace o existenci vnitrnich uzlu teto site by se nesmela dostat do Internetu jako takoveho. Jinymi slovy: vnitrni uzly lokalni site musi byt z vnejsiho Internetu neviditelne.
Zkusme se nyni zamyslet nad dvema otazkami: jak dosahnout takoveto neviditelnosti a jaky to ma smysl.
Odpoved na prvni otazku je vcelku jednoducha: na tzv. smerovaci, prostrednictvim ktereho je lokalni sit k Internetu pripojena, se zablokuje sireni tzv. smerovacich informaci (tedy informaci slouzicich potrebam smerovani, ktere prenasi informace typu "uzel s adresou XY se nachazi tam a tam), a to z lokalni site smerem do verejneho Internetu.
S touto odpovedi pak souvisi i odpoved na druhou otazku: k cemu je to dobre? Krome moznosti pouziti "neunikatnich" IP adres to prinasi napriklad vyrazne posileni bezpecnosti - kdyz nejake uzly nejsou zvenku viditelne, pak je o to tezsi je tzv. nabourat neboli proniknout k nim nedovolenym zpusobem.
Na druhe strane se za tyto vyhody plati tim, ze privatni uzly (v nasi lokalni siti) nemaji moznost komunikovat s jinymi uzly (ve verejnem Internetu). Tomu je ale treba spravne rozumet: nemaji moznost prime komunikace na urovni sitove vrstvy a IP protokolu. Mohou vsak komunikovat s vnejsimi uzly neprimo, pomoci ruznych mechanismu. Napriklad pomoci mechanismu NAT (Network Address Translation), primo na urovni sitove vrstvy. Nebo pomoci tzv. aplikacnich bran, oznacovanych jako tzv. proxy brany (a tedy na aplikacni urovni).
Princip aplikacnich proxy bran
Konkretni predstavu reseni s proxy branou naznacuje obrazek - proxy brana je umistena na rozhrani dvou prostredi, tedy "verejneho" Internetu s unikatnimi IP adresami a "privatni" lokalni site (s uzly, ktere maji privatni IP adresy). Kazdy uzel uvnitr privatni site pritom ma moznost komunikovat s proxy branou (resp. s uzlem na kterem bezi), ale nema jiz moznost komunikovat s uzly za touto proxy branou. Samotna proxy brana pritom musi byt "verejna" neboli vybavena unikatni IP adresou a "viditelna" z obou stran.
Kazda proxy brana neboli brana fungujici na urovni aplikacni vrstvy je pritom zamerena na urcitou konkretni sluzbu. Necht je to v praxi nejcastejsi priklad sluzby WWW (pak jde o tzv. WWW proxy branu). Kdyz uzivatel nektereho z pocitacu uvnitr lokalni site (s privatnimi IP adresami) vznese pozadavek na nejakou WWW stranku umistenou ve verejnem Internetu, jeho browser tento pozadavek ve skutecnosti posle zminene WWW proxy brane ("dal" ani nemuze). Proxy brana jiz sama ma pristup ke "zbytku sveta", neboli do verejneho Internetu, a tak zmineny pozadavek odesle - tentokrate svym jmenem, tomu WWW serveru, ktereho se pozadavek skutecne tyka. Jakmile dostane odpoved s pozadovanou strankou, uvedomi si, od ktereho privatniho uzlu puvodne pozadavek presel, a preda mu vysledek.
| Predstava
lokalni site s privatnimi IP adresami a proxy brany
|
Z pohledu uzivatele "privatniho" pocitace je tento "prestup" pres proxy branu zcela neviditelny (zajistuje jej sam browser bez vedomi uzivatele) a celkovy efekt je tedy takovy, jako kdyby uzivatel mel ze sveho pocitace plny pristup k Internetu - ovsem jen pokud jde o sluzbu, pro kterou je realizovana prislusna brana.
Diky tomuto reseni jsou i "zvenku neviditelne" pocitace s privatnimi IP adresami pro uzivatele normalne pouzitelne, chteji-li pracovat s konkretnimi sluzbami Internetu. Krome efektu na pouziti IP adres to ma i cetne dalsi vyhody: napriklad WWW proxy server muze byt soucasne tzv. cachujicim serverem, ktery si pamatuje ve sve vyrovnavaci pameti ty stranky, ktere pres nej projdou. Kdyz je pak bude znovu kdokoli chtit - ten samy ci jiny uzivatel - bude je moci poskytnout ze sve vyrovnavaci pameti (pameti cache), a nebude je muset znovu nacitat z puvodniho mista. Jeste dalsi efekt pak muze byt i v urcitem omezeni toho, kam uzivatele privatnich uzlu smeji pristupovat a kam nikoli - i toto lze na cachujici proxy brane snadno nastavit.
Jake adresy pouzit jako privatni?
Vratme se nyni zpet k meritu veci - k moznosti pouzit privatni IP adresy. Jiz drive jsme si rekli, ze to mohou byt v zasade jakekoli IP adresy, a jedinym pozadavkem je to, aby byly ruzne v ramci cele "privatni" site - cili vsude tam, kde je sirena informace o jejich existenci. V nasem ukazkovem pripade musi byt tyto adresy unikatni pouze v ramci lokalni site, pripojene ke "zbytku sveta" pres smerovac a proxy branu.
V praxi ale neni uplne optimalni, aby jako privatni byly pouzivany uplne libovolne adresy. Duvodem je skutecnost, ze oddeleni od vnejsiho sveta (blokovani smerovacich informaci o existenci uzlu s privatnimi adresami) nemusi byt vzdy idealni resp. muze byt nekdy naruseno - at jiz nevhodnym nakonfigurovanim prislusneho smerovace, ci jinym nedopatrenim ci chybou, zavadou atd.
Proto byl z celeho adresoveho prostoru vsech IP adres vyclenen urcity objem adres, o kterych se pak prohlasilo, ze prave ony maji byt pouzivany v roli privatnich IP adres. Toto "prohlaseni" bylo ucineno formou internetoveho standardu, konkretne dokumentu RFC 1918 (puvodne RFC 1597), a tudiz vyznam techto adres je vseobecne znam. Znaji jej napriklad i vyrobci smerovacu, kteri tudiz mohou do svych produktu zabudovat pojistky proti pripadnemu "uniku" smerovacich informaci. Pokud by u naseho ilustrativniho prikladu tyto adresy preci jen nejak "prosakly" z lokalni site, ve ktere jsou pouzity, nejblizsi dalsi smerovac v Internetu by jejich dalsi sireni automaticky zastavil, aniz by mu to musel nekdo explicitne nakazat.
Rozsah IP adres, ktere byly vycleneny pro pouziti v roli privatnich IP adres, je nasledujici: jde o jednu sitovou adresu tridy A (resp. jeden CIDR blok odpovidajici velikosti sitove adresy tridy A), dale 16 sitovych adres tridy B a konecne 256 sitovych adres tridy C. Konkretne jde o tyto adresy:
| 1x A | 10.0.0.0 ==> 10.255.255.255 |
| 16x B | 172.16.0.0 ==> 172.31.255.255 |
| 256x C | 192.168.0.0 ==> 192.168.255.255 |